package controller;

import dao.QuestaoAbordaConteudoJpaController;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import dao.exceptions.NonexistentEntityException;
import model.QuestaoAbordaConteudo;
import model.QuestaoProfessor;
import pagecontroller.JsfUtil;

/**
 *
 * @author Edilson Fernandes da Costa
 * @version 1.0
 */
public class QuestaoAbordaConteudoController {

    public QuestaoAbordaConteudoController() {
        if (JsfUtil.getObjectFromSession("QuestaoAbordaConteudoJpaController") == null) {
            jpaController = new QuestaoAbordaConteudoJpaController();
        } else {
            jpaController = (QuestaoAbordaConteudoJpaController) JsfUtil.getObjectFromSession("QuestaoAbordaConteudoJpaController");
        }
    }
    private QuestaoAbordaConteudo questaoAbordaConteudo = null;
    private QuestaoAbordaConteudo questaoAbordaConteudoAux = null;
    private QuestaoAbordaConteudoJpaController jpaController = null;
    private List<QuestaoAbordaConteudo> questaoAbordaConteudos = null;


   public void persiste() {
        if (questaoAbordaConteudo.getId() == null) {
            create();
        } else {
            update();
        }
    }

    public String update() {
        try {
            jpaController.edit(this.questaoAbordaConteudo);
            questaoAbordaConteudoAux = questaoAbordaConteudo;
            this.questaoAbordaConteudo = null;
            JsfUtil.addSuccessMessage("QuestaoAbordaConteudo Atualizado com Sucesso");
        } catch (NonexistentEntityException ex) {
            Logger.getLogger(QuestaoAbordaConteudoController.class.getName()).log(Level.SEVERE, null, ex);
        } catch (Exception ex) {
            Logger.getLogger(QuestaoAbordaConteudoController.class.getName()).log(Level.SEVERE, null, ex);
        }
        return "refreshPage";
    }

    public String create() {
        try {
            jpaController.create(questaoAbordaConteudo);
            questaoAbordaConteudoAux = questaoAbordaConteudo;
            questaoAbordaConteudo = null;
            JsfUtil.addSuccessMessage("QuestaoAbordaConteudo cadastrado com sucesso.");
        } catch (Exception e) {
            JsfUtil.ensureAddErrorMessage(e, "Ocorreu um erro na percistencia dos dados.");
            return null;
        }
        return "refreshPage";
    }

    public String edit() {
        QuestaoAbordaConteudo questaoAbordaConteudoTemp = (QuestaoAbordaConteudo) JsfUtil.getObjectFromRequestParameter("questaoAbordaConteudo");
        this.questaoAbordaConteudo = questaoAbordaConteudoTemp;
        return "refreshPage";
    }

    public String destroy() {
        QuestaoAbordaConteudo questaoAbordaConteudoTemp = (QuestaoAbordaConteudo) JsfUtil.getObjectFromRequestParameter("questaoAbordaConteudo");
        try {
            jpaController.destroy(questaoAbordaConteudoTemp.getId());
            JsfUtil.addSuccessMessage("QuestaoAbordaConteudo removido com sucesso.");
        } catch (NonexistentEntityException ex) {
            Logger.getLogger(QuestaoAbordaConteudoController.class.getName()).log(Level.SEVERE, null, ex);
        }

        return "refreshPage";
    }


    public QuestaoAbordaConteudo getQuestaoAbordaConteudo() {
        if (questaoAbordaConteudo == null) {
            questaoAbordaConteudo = new QuestaoAbordaConteudo();
        }
        return questaoAbordaConteudo;
    }

    public List<QuestaoAbordaConteudo> getQuestaoAbordaConteudos(){
        this.questaoAbordaConteudos = jpaController.findQuestaoAbordaConteudoEntities();
        return this.questaoAbordaConteudos;
    }

    public List<QuestaoAbordaConteudo> getQuestaoAbordaConteudos(QuestaoProfessor questaoProfessor){
        this.questaoAbordaConteudos = jpaController.getQuestaoAbordaConteudos(questaoProfessor);
        return this.questaoAbordaConteudos;
    }
    
    public QuestaoAbordaConteudoJpaController getJpaController() {
        return jpaController;
    }

    public QuestaoAbordaConteudo getQuestaoAbordaConteudoAux() {
        return questaoAbordaConteudoAux;
    }


}
